package com.zzw.bridge.business.dao;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zzw.bridge.business.dto.AddProjectDTO;
import com.zzw.bridge.business.dto.ZzwPierProjectDTO;
import com.zzw.bridge.business.vo.QueryIdVo;
import com.zzw.bridge.business.vo.ZzwPierProjectVo;
import  com.zzw.bridge.common.entitys.business.ZzwPierProjectEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 大桥项目表
 *
 * @author XiaoJie
 * @email
 * @date 2025-05-19 10:32:20
 */
@Mapper
public interface ZzwPierProjectDao extends BaseMapper<ZzwPierProjectEntity> {

    /**
     * 分页查询
     *
     * @param dto    {@link ZzwPierProjectDTO}       "查询条件"
     * @return       {@link Page<ZzwPierProjectVo>}
     */
    List<ZzwPierProjectVo> selectByPage(@Param("dto")ZzwPierProjectDTO dto,@Param("offset") Integer offset,@Param("size") Integer size);

    /**
     * 新增
     *
     * @param dto {@link ZzwPierProjectDTO}  "新增DTO"
     * @return    {@link long}               "影响行数"
     */
    int insertProject(@Param("dto") AddProjectDTO dto);

    /**
     * 编辑
     *
     * @param dto {@link ZzwPierProjectDTO}  "编辑DTO"
     * @return {@link Integer}
     */
    Integer updateByDto(@Param("dto") ZzwPierProjectDTO dto);

    /**
     * 根据账户查项目列表
     *
     * @param username "账户名"
     * @return {@link List<ZzwPierProjectVo>}
     */
    List<ZzwPierProjectVo> selectListByUsername(@Param("username") String username);

    /**
     * 获取项目ID列表
     * @return {@link List<QueryIdVo>}
     */
    List<QueryIdVo> selectIdList(@Param("projectType") Integer projectType);

    /**
     * 新增
     *
     * @param list {@link List<ZzwPierProjectVo>}
     * @return    {@link Long}               "影响行数"
     */
    Long insertBachProject(@Param("list") List<ZzwPierProjectVo> list);

    /**
     * 根据传的ids查
     *
     * @param ids "条件"
     * @return {@link List<String>}
     */
    List<String> selectListIds(@Param("list") List<String> ids);
}
